home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / telecomm / zmdm_src.arc / MANX.ASM < prev    next >
Assembly Source File  |  1988-06-26  |  2KB  |  74 lines

  1. ;
  2. ;  Make hi rez screen bios handle 50 lines of 8x8 characters
  3. ;
  4. ;  Adapted to Manx C use from origional PD asm posting
  5. ;  from atari corp.
  6. ;
  7. ;         Jwahar Bammi
  8. ;             usenet: cwruecmp!bammi@decvax.UUCP
  9. ;            csnet:  bammi@cwru.edu
  10. ;            arpa:   bammi@cwru.edu
  11. ;             CompuServe: 71515,155
  12. ;
  13.     cseg
  14.  
  15.     public _hi50
  16.  
  17. _hi50:                  ; switch to 50 line mode
  18.     link    a6,#0          ; routine preamble
  19.  
  20.     dc.w    $A000          ; get the important pointers (line A init)
  21.  
  22.     movea.l    4(a1),a1      ; a1 -> 8x8 font header
  23.  
  24.     move.l  72(a1),-$0A(a0)   ; v_off_ad <- 8x8 offset table addr
  25.     move.l  76(a1),-$16(a0)   ; v_fnt_ad <- 8x8 font data addr
  26.  
  27.     move    #8,-$2E(a0)      ; v_cel_ht <- 8    8x8 cell height
  28.     move    #49,-$2A(a0)      ; v_cel_my <- 49   maximum cell "Y"
  29.     move    #640,-$28(a0)     ; v_cel_wr <- 640  offset to cell Y+1
  30.  
  31.     unlk    a6          ; routine postable
  32.     rts              ; and return
  33.  
  34.    
  35. ;
  36. ; Make hi rez screen bios handle 25 lines of 8x16 characters
  37. ;
  38.  
  39.     public _hi25
  40.  
  41. _hi25:                  ; Switch to 25 lines display
  42.     link    a6,#0          ; routine preamble
  43.  
  44.     dc.w    $A000          ; get the important pointers
  45.     
  46.     movea.l    8(a1),a1      ; a1 -> 8x16 font header
  47.  
  48.     move.l  72(a1),-$0A(a0)   ; v_off_ad <- 8x16 offset table addr
  49.     move.l  76(a1),-$16(a0)   ; v_fnt_ad <- 8x16 font data addr
  50.  
  51.     move    #16,-$2E(a0)      ; v_cel_ht <- 16    8x16 cell height
  52.     move    #24,-$2A(a0)      ; v_cel_my <- 24    maximum cell "Y"
  53.     move    #1280,-$28(a0)      ;  v_cel_wr <- 1280  vertical byte offset
  54.  
  55.     unlk    a6          ; routine postamble
  56.     rts              ; bye
  57.  
  58.  
  59. ; return the base address of the line A variables 
  60.  
  61.     public _aaddress
  62.  
  63. _aaddress:
  64.     link    a6,#0
  65.     dc.w $A000        ; Line A trap - 0000 is init aline
  66.                 ; d0 and a0 now contain the address
  67.                 ; so we can just return and the result
  68.                 ; will be valid
  69.     unlk    a6
  70.     rts
  71.  
  72.     end
  73.